ÀÌ ¼½¼ÇÀº Introduce Field ¸®ÆÑÅ丵 À§¿¡¼ ´ç½Å¿¡°Ô Æ÷°ýÀûÀÎ overview¸¦ Á¦°øÇϰí how ÀÌ
¸®ÆÑÅ丵ÀÌ IntelliJ
IDEA¿¡¼ »ç¿ëµÉ ¼ö Àִ°¡¸¦ Á¦°øÇÕ´Ï´Ù.
Introduce Field ¸®ÆÑÅ丵Àº »õ·Î¿î Çʵ带 ¼±¾ðÇϰí, ¼±ÅÃµÈ Ç¥Çö½Ä°ú ÇÔ²² ±×°ÍÀ» ÃʱâÈÇÕ´Ï´Ù. ¿ø·¡ Ç¥Çö½ÄÀº ÇʵåÀÇ »ç¿ëÀ¸·Î ±³Ã¼µË´Ï´Ù.
¿¹¸¦ µé¸é, ¸®ÆÑÅ丵 ÀüÀÇ ÀϺΠÄڵ尡 ¿©±â¿¡ ÀÖ½À´Ï´Ù:
public class MyApplet extends JApplet {
public void init() {
Container cp = getContentPane();
cp.setLayout( new FlowLayout());
cp.add( new Button("Button"));
}
}
¿ì¸®´Â Introduce Field ¸®ÆÑÅ丵À» Àû¿ëÇϱâ À§ÇØ »õ·Î¿î ¹öư ("Button") À» ¼±ÅÃÇÕ´Ï´Ù .
ÀÌÈÄ ¿ì¸®´Â ´ÙÀ½ÀÇ Äڵ带 °¡Áý´Ï´Ù:
public class MyApplet extends JApplet {
private JButton button = new JButton("Button");
public void init() {
Container cp = getContentPane();
cp.setLayout(new FlowLayout());
cp.add(button);
}
}
Çʵ带 »ý¼ºÇϱâ À§ÇØ, ¿¡µðÅÍ¿¡¼ »õ·Î¿î Çʵ忡 ÇÒ´çµÈ Ç¥Çö½ÄÀ» ¼±ÅÃÇϽʽÿÀ.


|
Introduce Field ¸®ÆÑÅ丵¿¡ ´ëÇÑ Ç¥Çö½ÄÀ» ¼±ÅÃÇϱâ À§ÇØ Ctrl +
W (´Ü¾î ¼±ÅÃ)¸¦ »ç¿ëÇÏ´Â °ÍÀº ¾ÆÁÖ Æí¸®ÇÕ´Ï´Ù.
ÄÚµåÀÇ ºí·Ï È®ÀåÀ» ¼±ÅÃÇÏ°í ´ç½ÅÀº ij·µÀ» ³»ºÎÀÇ ¾î´À °÷¿¡ ¹èÄ¡Çϰí, Ctrl + W¸¦ ¸î ¹ø ´·¯¼ ¾î¶² Ç¥Çö½ÄÀÌ¶óµµ ½±°Ô Äڵ忡¼ ¼±ÅÃÇØµµ ÁÁ½À´Ï´Ù:
|
ÁÖ ¸Þ´º¿¡¼ ¶Ç´Â ¿¡µðÅÍ¿¡¼ ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© ºÒ·ÁÁö´Â ÆË¾÷ ¸Þ´º¿¡¼ Refactor | Introduce
Field... Ç׸ñÀ» Ŭ¸¯ ÇϽʽÿÀ.
´ÙÀ½ÀÇ Introduce Field ´ÙÀ̾ó·Î±×°¡ ³ªÅ¸³³´Ï´Ù:

Introduce Field ´ÙÀ̾ó·Î±×ÀÇ ÃÖ»óÀ§¿¡¼, »ý¼º ÇʵåÀÇ Å¸ÀÔÀÌ Ç¥½ÃµË´Ï´Ù.
Name ÅØ½ºÆ® Çʵ忡¼ ´ç½ÅÀº Çʵ忡 À̸§À» ÀԷ½Ãų ¼ö Àְųª, IDEA¿¡ ÀÇÇØ Á¦¾ÈµÈ Çϳª¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ Á¦¾ÈµÈ À̸§Àº ±× ŸÀÔ À§¿¡¼ ¼±ÅÃµÈ Ç¥Çö½Ä¿¡ ÀÇÁ¸ÇÕ´Ï´Ù.
¸¸ÀÏ ´ç½ÅÀÌ ÄÚµå ½ºÅ¸ÀÏ ¿É¼Ç ¿¡¼ Çʵ带 À§ÇØ À̸§ ½Äº° ¹øÈ£¸¦ ÁöÁ¤Çß´õ¶ó¸é Á¦¾ÈµÈ Çʵå À̸§À» Çü¼ºÇÏ´Â °ÍÀº IDEA¿¡ ÀÇÇØ »ç¿ëµÉ °ÍÀÔ´Ï´Ù.

|
¸¸ÀÏ ¼±ÅÃµÈ Ç¥Çö½ÄÀÇ ´ÙÁß ¹ß»ýÀÌ ÀÖÀ¸¸é, ±×µé ¸ðµÎ´Â ¿¡µðÅÍ¿¡¼ °Á¶µÉ °ÍÀÔ´Ï´Ù. ±×¸®°í Replace all occurrences of expression ( <number
of occurrences found> ) üũ¹Ú½º´Â ´ÙÀ̾ó·Î±× À©µµ¿ìÀÇ ¹Ù´Ú¿¡¼ ³ªÅ¸³¯ °Í ÀÔ´Ï´Ù. ¸¸ÀÏ Ã¼Å©¹Ú½º°¡ ¼±ÅõǸé, ¼±ÅÃµÈ Ç¥Çö½ÄÀÇ ¸ðµç ¹ß»ýÀº ±³Ã¼µÉ °Í ÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¿À·ÎÁö ´ç½ÅÀÌ Ã³À½¿¡ ÁöÁ¤ÇÑ Ç¥Çö½Ä¸¸ÀÌ º¯°æµÉ °Í ÀÔ´Ï´Ù.
|
´ÙÀ̾ó·Î±×´Â 3°³ÀÇ ¿É¼Ç ±×·ìÀ» °¡Áý´Ï´Ù:
ÃʱâÈ
|
Çʵ尡 ÃʱâÈµÈ °÷À» Á¤ÀÇÇÕ´Ï´Ù:
Current
method - Çʵå´Â ¼±ÅÃµÈ Ç¥Çö½Ä¿¡ ¾Õ¼ ¸Þ¼Òµå ³»¿¡¼ Áï½Ã Ãʱâȵ˴ϴÙ.
Field
declaration - Çʵå´Â ´Ù¸¥ Çʵå¿Í ÇÔ²² Ãʱâȵ˴ϴÙ.
Class
constructor - Çʵå´Â Ŭ·¡½º »ý¼ºÀÚ¿¡¼ Ãʱâȵ˴ϴÙ.
|
°¡½Ã¼º
|
Çʵ带 À§ÇØ °¡½Ã¼º ¹üÀ§¸¦ °áÁ¤ÇÕ´Ï´Ù:
Private
Package
local
Protected
Public
|
´Ù¸¥ º¯°æÀÚ
|
Çʵ带 À§ÇØ º¯°æÀÚ¸¦ °áÁ¤ÇÕ´Ï´Ù:
Final

|
¸¸ÀÏ Çʵ尡 ÇöÀçÀÇ ¸Þ¼Òµå·Î ÃʱâȵǸé final üũ ¹Ú½º´Â ºÒ°¡´ÉÇÏ°Ô ÇÏ°Ô µË´Ï´Ù.
|
|
|
¸¸ÀÏ ¼±ÅÃµÈ Äڵ尡 À¯È¿ÇÑ Ç¥Çö½ÄÀ» Ç¥½ÃÇÏÁö ¾ÊÀ¸¸é ´ç½Å¿¡°Ô ´ÙÀ½ÀÇ ¿¡·¯ ¸Þ½ÃÁö·Î ÇÁ·ÒÇÁÆ® µÉ °ÍÀÔ´Ï´Ù:

|